Изоляция транзакций

ACID

Транзакцией называется множество операций, которые переводят базу данных из одного корректного состояния в другое корректное состояние (согласованность) при условии, что транзакция выполнена полностью (атомарность) и без помех со стороны других транзакций (изоляция).

Durability — Надёжность
Если пользователь получил подтверждение от системы, что транзакция выполнена, он может быть уверен, что сделанные им изменения не будут отменены из-за какого-либо сбоя. Обесточилась система, произошел сбой в оборудовании? На выполненную транзакцию это не повлияет.

Целостность - это когда данные удоавлетворяют бизнес логике, например ессли это цены, то они должны быть положительны.
Согласованность - это когда данные в разных таблицах об одинаковых физических объектах согласуются между собой, пример перевод денег, когда ни в какой момент их не становится в 2 раза больше и они не пропадают.

Уровни изоляции и аномалии в стандарте SQL

  1. Read uncommitted — чтение незафиксированных данных;
  2. Read committed — чтение зафиксированных данных;
  3. Repeatable read — повторяющееся чтение;
  4. Serializable — упорядочиваемость.
    1 - открывает чтение даже не зафиксированных другими транзакциями данных.
    2 - Читает только то что уже зафиксировано, но может произойти так, что не получится прочитать дважды одно и тоже тк какая то транзакция зафиксировалась вовремя.
    3 - Делает снимок данных и читает из него, но может произойти ошибка при сохранении того что уже изменилось.
    4 - Изолирует таблицу и работает одна, нет аномалий.